package com.example.myapplication.view;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.Shader;
import android.support.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;

/**
 * panit
 */
public class TestView11 extends View {


    /**
     * 直接设置颜色
     * paint.setColor(Color.parseColor("#009688"));
     * setARGB(int a, int r, int g, int b) 和 setColor(color) 都是一样一样儿的，只是它的参数用的是更直接的三原色与透明度的值。实际运用中，setColor() 和 setARGB() 哪个方便和顺手用哪个吧。
     * <p>
     * 设置 Shader
     * setShader(Shader shader)
     * LinearGradient RadialGradient SweepGradient BitmapShader ComposeShader 这么几个
     *
     * 线性渐变
     * LinearGradient
     *设置两个点和两种颜色，以这两个点作为端点，使用两种颜色的渐变来绘制颜色
     *
     * 辐射渐变
     * RadialGradient
     * 辐射渐变很好理解，就是从中心向周围辐射状的渐变
     *
     * 扫描渐变
     * SweepGradient
     *
     */


    Paint paint = new Paint();

    public TestView11(Context context) {
        super(context);

    }

    public TestView11(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);

    }

    public TestView11(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);

    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        Shader shader = new LinearGradient(100, 200, 500, 100, Color.parseColor("#E91E63"),
                Color.parseColor("#2196F3"), Shader.TileMode.CLAMP);
        paint.setShader(shader);

        canvas.drawCircle(300, 300, 200, paint);

    }
}